#pragma once
#include "CBrush.h"


class CGradientStopCollection;

class CGradientBrush :
	public CBrush
{

protected: 
	CGradientBrush(const CGradientBrush & original, HRESULT & hr);
	CGradientBrush();
private: 
	CGradientBrush(CCoreServices *);
	void Initialize();
protected: 
	virtual ~CGradientBrush();
public: 
	virtual XUINT32 GetTypeIndex() const;
	static HRESULT Create(CDependencyObject * * ppObject, CREATEPARAMETERS * pCreate);
	virtual XINT32 NeedsBounds();
	XBOOL IsOpaque();
	enum XcpColorInterpolationMode m_nInterpolate;
	enum XcpGradientWrapMode m_nSpread;
	enum XcpMappingMode m_nMapping;

	CGradientStopCollection * m_pStops;
protected: 
	HRESULT GetAcceleratedGradientStops(struct XcpGradientStop * * ppGradientStops, XUINT32 * pGradientStopCount, enum InterpolationMode::Value * pInterpolationMode, enum GradientWrapMode::Value * pGradientWrapMode);



};